Modern computing systems execute a variety of requests concurrently and operate in a dynamic environment of cooperative systems, each comprising of numerous hardware components subject to failure or degradation.
The need to regulate concurrent hardware and software “events” has led to the development of a field which may be generically termed “Workload Management.” For the purposes of this application, “events” comprise, but are not limited to, one or more signals, semaphores, periods of time, hardware, software, business requirements, etc.
Workload management techniques focus on managing or regulating a multitude of individual yet concurrent requests in a computing system by effectively controlling resource usage within the computing system. Resources may include any component of the computing system, such as CPU (central processing unit) usage, hard disk or other storage means usage, or I/O (input/output) usage.
Workload management techniques fall short of implementing a full system regulation, as they do not manage unforeseen impacts, such as unplanned situations (e.g., a request volume surge, the exhaustion of shared resources, or external conditions like component outages) or even planned situations (e.g., systems maintenance or data load).
Many different types of system conditions or events can impact negatively the performance of requests currently executing on a computer system. These events can remain undetected for a prolonged period of time, causing a compounding negative effect on requests executing during that interval. When problematic events are detected, sometimes in an ad hoc and manual fashion, the computing system administrator may still not be able to take an appropriate course of action, and may either delay corrective action, act incorrectly or not act at all.
A typical impact of not managing for system conditions is to deliver inconsistent response times to users. For example, often systems execute in an environment of very cyclical usage over the course of any day, week, or other business cycle. If a user ran a report near standalone on a Wednesday afternoon, she may expect that same performance with many concurrent users on a Monday morning. However, based on the laws of linear systems performance, a request simply cannot deliver the same response time when running stand-alone as when it runs competing with high volumes of concurrency.
Therefore, while rule-based workload management can be effective in a controlled environment without external impacts, it fails to respond effectively when those external impacts are present.
An additional impact on the performance of requests in a computer system is based on the limited resources available in a computer system and the ability to perform data maintenance using such limited resources. Data maintenance tasks in a database system are typically competitors for limited resources and often are overlooked. Typically, these tasks run in the background or are relegated to a low system priority. However, in some cases, performing these data maintenance tasks may actually free up more resources than they consume. For example, this is true in the case of gathering up-to-date statistics, which may lead to more efficient optimizer plans. In other examples, data maintenance tasks may provide other rewards in terms of space savings, compaction, data integrity, etc. Therefore, what is needed is the ability to perform data maintenance tasks and thereby improve/increase the availability of system resources or processing capability.